﻿using System;
using System.Collections.Generic;

namespace OpenNOSClient
{
    public interface IOpenNOSRestClientAsync
    {
        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
        void GetLatestArticlesAsync(OpenNOSRestClientAsync.OpenNOSRestCallback<IEnumerable<Article>> openNOSCallback, OpenNOSCategory category);

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
        void GetLatestAudioAsync(OpenNOSRestClientAsync.OpenNOSRestCallback<IEnumerable<Audio>> openNOSCallback, OpenNOSCategory category);

        [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures")]
        void GetLatestVideoAsync(OpenNOSRestClientAsync.OpenNOSRestCallback<IEnumerable<Video>> openNOSCallback, OpenNOSCategory category);

        void SearchContentAsync(OpenNOSRestClientAsync.OpenNOSRestCallback<SearchResult> openNOSCallback, string query);

        void GetRadioGuideAsync(OpenNOSRestClientAsync.OpenNOSRestCallback<IEnumerable<GuideResult>> openNOSCallback, DateTime? startDate = null, DateTime? endDate = null, string channel = null);

        void GetTVGuideAsync(OpenNOSRestClientAsync.OpenNOSRestCallback<IEnumerable<GuideResult>> openNOSCallback, DateTime? startDate = null, DateTime? endDate = null, string channel = null);
    }
}
